package com.wicket.okrbff.web.contorller;

import cn.hutool.core.bean.BeanUtil;
import com.wicket.okrbff.biz.service.EvaCalcService;
import com.wicket.okrbff.biz.service.dto.req.*;
import com.wicket.okrbff.biz.service.dto.res.*;
import com.wicket.okrbff.common.ro.OkrResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import java.util.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.wicket.okrapp.integration.FwAppEvaCalcClient;
import com.wicket.okrapp.integration.dto.ImplementAdjustedProgressActualCostAmountEtcRespDto;
import com.wicket.okrapp.integration.dto.ImplementAdjustedProgressActualCostAmountEtcReqDto;
import com.wicket.okrbff.common.exception.Assert;
import com.wicket.okrcomponent.integration.FwCompInterfaceModeClient;
import com.wicket.okrcomponent.integration.dto.GenerateDataObjectBatchCodeComRespDto;
import com.wicket.okrcomponent.integration.dto.GenerateDataObjectBatchCodeComReqDto;
import com.wicket.okrapp.integration.dto.ImplementSegUpdateTargetStandardDataComRespDto;
import com.wicket.okrapp.integration.dto.ImplementSegUpdateTargetStandardDataComReqDto;
import com.wicket.okrbff.common.util.CommonFunctionHelper;
import com.wicket.okrapp.integration.dto.UpdateAchivementInterfaceComRespDto;
import com.wicket.okrapp.integration.dto.UpdateAchivementInterfaceComReqDto;
import com.wicket.okrapp.integration.dto.ImplementAdjustedCompilationMaterialsOrPicComRespDto;
import com.wicket.okrapp.integration.dto.ImplementAdjustedCompilationMaterialsOrPicComReqDto;
import com.wicket.okrapp.integration.dto.DocumentDto;
import java.util.stream.Collectors;
import cn.hutool.core.collection.CollectionUtil;
import com.wicket.okrapp.integration.dto.QueryReportTaskTreeFilterListRespDto;
import com.wicket.okrapp.integration.dto.QueryReportTaskTreeFilterListReqDto;
import com.wicket.okrbff.biz.service.dto.common.BffEvaObjTargetCycleDto;
import com.wicket.okrbff.common.dto.TreeNode;
import com.wicket.okrapp.integration.dto.QueryReportTaskAttributionCycleFilterListRespDto;
import com.wicket.okrapp.integration.dto.QueryReportTaskAttributionCycleFilterListReqDto;
import com.wicket.okrbff.biz.service.dto.common.BffTargetBelongCycleDto;
import com.wicket.okrapp.integration.dto.QueryReportToMeSubordinateFilterListRespDto;
import com.wicket.okrapp.integration.dto.QueryReportToMeSubordinateFilterListReqDto;
import com.wicket.okrbff.biz.service.dto.common.BffSubordinateChargeSmallCircleDto;
import com.wicket.okrapp.integration.dto.QueryRelatedMeReportTaskDeptFilterListRespDto;
import com.wicket.okrapp.integration.dto.QueryRelatedMeReportTaskDeptFilterListReqDto;
import com.wicket.okrframework.integration.FwBaseOrgClient;
import com.wicket.okrframework.integration.dto.BatchQueryDeptComRespDto;
import com.wicket.okrframework.integration.dto.BatchQueryDeptComReqDto;
import com.wicket.okrapp.integration.dto.QueryIncompleteReportTaskListRespDto;
import com.wicket.okrapp.integration.dto.QueryIncompleteReportTaskListReqDto;
import com.wicket.okrbff.biz.service.dto.common.BffTaskDataDto;
import com.wicket.okrapp.integration.dto.QueryTargetContNewestDatasListRespDto;
import com.wicket.okrapp.integration.dto.QueryTargetContNewestDatasListReqDto;
import com.wicket.okrapp.integration.dto.QueryReportTaskCycleFilterListRespDto;
import com.wicket.okrapp.integration.dto.QueryReportTaskCycleFilterListReqDto;
import com.wicket.okrbff.biz.service.dto.common.BffReportTaskCycleFilterDto;
import com.wicket.okrapp.integration.dto.QueryTargetContCyclePhaseMenuListRespDto;
import com.wicket.okrapp.integration.dto.QueryTargetContCyclePhaseMenuListReqDto;
import com.wicket.okrbff.biz.service.dto.common.BffExecuteCycleStageDto;

/**
 * @author ：
 * @date ：
 *
 *
 * @version 1.0
 */
@Api(value = "EvaCalc", tags = { "EvaCalc" })
@RestController
// @RequestMapping("/oms/evaCalc/")
public class EvaCalcController {

  @Autowired
  EvaCalcService evaCalcService;
/**
   * B3执行修正进度值/实际值/费用等
   * gen by moon at 6/24/2024, 4:47:27 AM
   */
    @PostMapping("/oms/evaCalc/implementAdjustedProgressActualCostAmountEtc")
    @ApiOperation(value = "B3执行修正进度值/实际值/费用等", response = OkrResult.class)
    public OkrResult<BffImplementAdjustedProgressActualCostAmountEtcRespDto> implementAdjustedProgressActualCostAmountEtc(@RequestBody(required=false) @Validated BffImplementAdjustedProgressActualCostAmountEtcReqDto reqDTO){
        return OkrResult.success(evaCalcService.implementAdjustedProgressActualCostAmountEtc(reqDTO));
    }
/**
   * B3执行分段更新目标标准数据(管理)
   * gen by moon at 7/5/2024, 11:49:27 PM
   */
    @PostMapping("/oms/mgt/evaCalc/implementSegUpdateTargetStandardData")
    @ApiOperation(value = "B3执行分段更新目标标准数据(管理)", response = OkrResult.class)
    public OkrResult<BffImplementSegUpdateTargetStandardDataRespDto> implementSegUpdateTargetStandardData(@RequestBody(required=false) @Validated BffImplementSegUpdateTargetStandardDataReqDto reqDTO){
        return OkrResult.success(evaCalcService.implementSegUpdateTargetStandardData(reqDTO));
    }
/**
   * B3开启标志性成果对接
   * gen by moon at 7/13/2024, 1:13:37 AM
   */
    @PostMapping("/oms/evaCalc/updateAchivementInterface")
    @ApiOperation(value = "B3开启标志性成果对接", response = OkrResult.class)
    public OkrResult<BffUpdateAchivementInterfaceRespDto> updateAchivementInterface(@RequestBody(required=false) @Validated BffUpdateAchivementInterfaceReqDto reqDTO){
        return OkrResult.success(evaCalcService.updateAchivementInterface(reqDTO));
    }
/**
   * B3执行修正总结资料及图片
   * gen by moon at 7/14/2024, 6:49:16 PM
   */
    @PostMapping("/oms/evaCalc/implementAdjustedCompilationMaterialsOrPic")
    @ApiOperation(value = "B3执行修正总结资料及图片", response = OkrResult.class)
    public OkrResult<BffImplementAdjustedCompilationMaterialsOrPicRespDto> implementAdjustedCompilationMaterialsOrPic(@RequestBody(required=false) @Validated BffImplementAdjustedCompilationMaterialsOrPicReqDto reqDTO){
        return OkrResult.success(evaCalcService.implementAdjustedCompilationMaterialsOrPic(reqDTO));
    }
/**
   * B3查询汇报任务树筛选条件列表
   * gen by moon at 7/20/2024, 11:15:46 PM
   */
    @PostMapping("/oms/evaCalc/queryReportTaskTreeFilterList")
    @ApiOperation(value = "B3查询汇报任务树筛选条件列表", response = OkrResult.class)
    public OkrResult<BffQueryReportTaskTreeFilterListRespDto> queryReportTaskTreeFilterList(@RequestBody(required=false) @Validated BffQueryReportTaskTreeFilterListReqDto reqDTO){
        return OkrResult.success(evaCalcService.queryReportTaskTreeFilterList(reqDTO));
    }
/**
   * B3查询汇报任务归属周期筛选条件列表
   * gen by moon at 7/20/2024, 11:15:58 PM
   */
    @PostMapping("/oms/evaCalc/queryReportTaskAttributionCycleFilterList")
    @ApiOperation(value = "B3查询汇报任务归属周期筛选条件列表", response = OkrResult.class)
    public OkrResult<BffQueryReportTaskAttributionCycleFilterListRespDto> queryReportTaskAttributionCycleFilterList(@RequestBody(required=false) @Validated BffQueryReportTaskAttributionCycleFilterListReqDto reqDTO){
        return OkrResult.success(evaCalcService.queryReportTaskAttributionCycleFilterList(reqDTO));
    }
/**
   * B3查询汇报给我下属筛选条件列表
   * gen by moon at 7/21/2024, 2:49:20 PM
   */
    @PostMapping("/oms/evaCalc/queryReportToMeSubordinateFilterList")
    @ApiOperation(value = "B3查询汇报给我下属筛选条件列表", response = OkrResult.class)
    public OkrResult<BffQueryReportToMeSubordinateFilterListRespDto> queryReportToMeSubordinateFilterList(@RequestBody(required=false) @Validated BffQueryReportToMeSubordinateFilterListReqDto reqDTO){
        return OkrResult.success(evaCalcService.queryReportToMeSubordinateFilterList(reqDTO));
    }
/**
   * B3查询我相关汇报任务部门筛选条件列表
   * gen by moon at 7/21/2024, 2:49:32 PM
   */
    @PostMapping("/oms/evaCalc/queryRelatedMeReportTaskDeptFilterList")
    @ApiOperation(value = "B3查询我相关汇报任务部门筛选条件列表", response = OkrResult.class)
    public OkrResult<BffQueryRelatedMeReportTaskDeptFilterListRespDto> queryRelatedMeReportTaskDeptFilterList(@RequestBody(required=false) @Validated BffQueryRelatedMeReportTaskDeptFilterListReqDto reqDTO){
        return OkrResult.success(evaCalcService.queryRelatedMeReportTaskDeptFilterList(reqDTO));
    }
/**
   * B3查询未完成汇报任务列表
   * gen by moon at 8/22/2024, 12:29:53 AM
   */
    @PostMapping("/oms/evaCalc/queryIncompleteReportTaskList")
    @ApiOperation(value = "B3查询未完成汇报任务列表", response = OkrResult.class)
    public OkrResult<BffQueryIncompleteReportTaskListRespDto> queryIncompleteReportTaskList(@RequestBody(required=false) @Validated BffQueryIncompleteReportTaskListReqDto reqDTO){
        return OkrResult.success(evaCalcService.queryIncompleteReportTaskList(reqDTO));
    }
/**
   * B3查询目标内容最新数据点列表
   * gen by moon at 8/22/2024, 12:30:03 AM
   */
    @PostMapping("/oms/evaCalc/queryTargetContNewestDatasList")
    @ApiOperation(value = "B3查询目标内容最新数据点列表", response = OkrResult.class)
    public OkrResult<BffQueryTargetContNewestDatasListRespDto> queryTargetContNewestDatasList(@RequestBody(required=false) @Validated BffQueryTargetContNewestDatasListReqDto reqDTO){
        return OkrResult.success(evaCalcService.queryTargetContNewestDatasList(reqDTO));
    }
/**
   * B3查询汇报任务周期筛选列表
   * gen by moon at 9/12/2024, 7:28:39 PM
   */
    @PostMapping("/oms/evaCalc/queryReportTaskCycleFilterList")
    @ApiOperation(value = "B3查询汇报任务周期筛选列表", response = OkrResult.class)
    public OkrResult<BffQueryReportTaskCycleFilterListRespDto> queryReportTaskCycleFilterList(@RequestBody(required=false) @Validated BffQueryReportTaskCycleFilterListReqDto reqDTO){
        return OkrResult.success(evaCalcService.queryReportTaskCycleFilterList(reqDTO));
    }
/**
   * B3查询目标内容周期导航列表(边界)
   * gen by moon at 9/25/2024, 10:11:47 PM
   */
    @PostMapping("/oms/evaCalc/queryTargetContCyclePhaseMenuListBorder")
    @ApiOperation(value = "B3查询目标内容周期导航列表(边界)", response = OkrResult.class)
    public OkrResult<BffQueryTargetContCyclePhaseMenuListBorderRespDto> queryTargetContCyclePhaseMenuListBorder(@RequestBody(required=false) @Validated BffQueryTargetContCyclePhaseMenuListBorderReqDto reqDTO){
        return OkrResult.success(evaCalcService.queryTargetContCyclePhaseMenuListBorder(reqDTO));
    }
}
